package com.jzoffer;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/*
* 写一个函数，求两个整数之和，要求在函数体内不得使用+、-、*、/四则运算符号。
* */
public class PureAdd {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String str = bf.readLine();
        String str2 = bf.readLine();
        int a1 = Integer.parseInt(str);
        int a2 = Integer.parseInt(str2);
        int res = add(a1,a2);
        System.out.println(res);
        bf.close();

    }

    /*
 //step1:按位与是查看两个数哪些二进制位都为1，这些都是进位位，结果需左移一位，表示进位后的结果
//step2:异或是查看两个数哪些二进制位只有一个为1，这些是非进位位，可以直接加、减，结果表示非进位位进行加操作后的结果
//step3:n1&n2是查看有没有进位位了，如果有，需要重复step1、step2；如果没有，保留n1、n2上二进制为1的部分，用或将之合为一个数，即为最后结果
        */

    public static int add(int num1,int num2){
        int n1 = (num1 ^ num2);
        int n2 = ((num1 & num2) << 1);
        while ((n1 & n2) != 0){
            num1 = n1;
            num2 = n2;
            n1 =(num1 ^ num2) ;
            n2 = ((num1 & num2) << 1);
        }
        return n1 | n2;

    }
}
